iT邦幫忙

2021 iThome 鐵人賽

DAY 28
0

上一篇我們學到怎麼使用Vim,還有修改commit message,這次要做的事情呢,就是要來合併跟拆解commit massenge。

合併commit

Well接下來的起手勢還是一樣啦,先來個:

git log --oneline

這個時候就可以看到我們的歷時的commit紀錄,不過總覺得有點多又有點雜。

那就來開個互動模式吧!

git rebase -i 507908b

一樣來到剛剛那個地方,不過,這是想要把一些Vim的編輯重點稍微看一下:

我們可以看到其實指令有很多種,像上一篇我們就是用reword來做編輯,而這次呢,我們會使用到的是:

squash

well,來看看會變怎麼樣:

好的,這邊做的變更,其實是有一些意義的,因為我們覺得某一些紀錄是多餘的,所以我們想把它合併起來,

而我們必須知道一件事情:

互動模式中,紀錄的由上而下就是最舊的紀錄到最新的紀錄,這個跟我們用:

git log --oneline

這個指令叫出來的結果並不相同,必須要注意一下。

好的,那我們下squash這個指令的主要意義其實也是要讓我們合併紀錄,那大概知道之後,下了squash的那行紀錄就會跟前一行進行合併了,我們等等可以注意一下哪些會消失!

然後下完指令,跟上一篇一樣會進行全部的commit message的修改,我這邊就按照順序改成:

大致上是完成了,這個時候再把常用的指令給它下下去:

git log --oneline

這個時候就會看到一些合併的資料啦!

拆解commit

上面我們看到如何使用合併commit,我們這次要另外做的就是把一個commit拆成多個,這個要怎麼做呢?

我們一樣就是下最熟悉的指令:

git log --oneline

看一下現在的狀態,然後也是下rebase:

git rebase -i 507908b

然後一樣會跳出Vim編輯器

這個時候我們要做的就是另外一個指令啦:

edit

這個時候會突然停下來,嗯?

這個時候,我們要把一個commit拆成兩個,也就是說,之前好像有學過怎麼拆掉commit:

git reset HEAD^

這樣就會讓我們的狀態回到原先沒有合併的樣子,老樣子下一個指令:

git status

還有下面的狀態,由於剛剛拆出來的commit,我們的檔案也一起被拆出來了在工作目錄,可以看到狀態是Untracked:

所以接下來要做的事情就是要把它加回去囉!

git add 
git commit -m "....."

用上面的指令把棄置在工作目錄的紅色檔案加回去吧

然後,最後也要記得,由於現在的狀態是在rebase,所以還是要繼續把rebase執行完成:

git rebase --continue

這樣,全部就結束了!

tags: 鐵人賽

上一篇
# Day27--我是誰?我在哪?終於離開Vim了
下一篇
# Day29--在某些commit之間再加些commit:我就是欲求不滿,我就是強迫症!
系列文
Swift30天:從語法到觀念,告訴你在踏入實作前最好弄清楚的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言